The IEEE 1394 standard defines an interface for performing high speed serial communication among computers, peripheral devices, digital cameras and other electronic devices that handle multimedia information of moving pictures, still pictures, sound and character data, etc. IEEE 1394 systems having transmission speeds of 100 Mbps, 200 Mbps, 400 Mbps and 800 Mbps have been adopted in practical applications. Even higher speeds are envisioned. This communication system uses a 6-core cable including the power supply wires and allows the connection of up to 63 devices as nodes. The length of the cable between nodes is up to 4.5 m. The longest distance between nodes is 72 m. According to the IEEE 1394 standard, isochronous data transfer is defined as synchronous communication, while asynchronous data transfer is defined as non-synchronous communication.
The IEEE 1394 standard allows hot swaps. Another node may be pulled off or inserted during data stream transfer. The power supply of another node may be turned on or off even during operation.
When the number of nodes connected to the bus of an IEEE1 394 system increases or decreases during data transfer, if these nodes are different than the data transfer nodes, they have no direct influence on the data transfer.
According to the IEEE 1394 standard, a bus reset signal is generated when the number of nodes increases or decreases. Upon bus reset, all of the nodes on the bus output ID information known as self ID packets. Thus all of the nodes on the bus obtain information about all of the other nodes.
Data transfer in the IEEE 1394 standard uses the iso stream of isochronous communication. The self ID packet output due to a bus reset does not hinder the iso packet according to the standard. In the IEEE 1394 standard a bus reset does not directly influence data transfer.
Digital data transfer such as between DTV (Digital Television) and a peripheral recorder requires content protection. The prior art content protection includes the DTCP (Digital Transmission Content Protection). According to the DTCP protocol, the data sender (source node) and the data receiver (target node) exchange an encryption key after identifying the counterpart according to an AKE (Authentication ad Key Exchange) protocol. After encryption at the source node, the data transfers on the IEEE 1394 bus. The target node decodes the received data using the key exchanged by the AKE.
When a bus reset occurs due to the removal or insertion of a node or an increase or decrease in the number of nodes by turning on or off of the power supply of a node, the prior art requires re-exchange of the encryption key by AKE for the data being transferred on the bus.
When an increase or decrease in the number of nodes occurs due to the turning on or off of the power supply or a node and if the added or deleted node is a computer or other device with high bus management ability, the node performs bus management. This requires plural bus reset cycles. In this case, a bus reset is performed for changing the parameters of the bus, such as the gap count, etc. In addition, a high bus management node optimizes the bus state of nodes when the number of nodes changes to fit the state assumed by it. This requires plural bus reset cycles.
A bus reset might occur mid-way during AKE upon an increase or decrease in the number of nodes during content protected data transfer. Because AKE is restarted due to bus reset, processing takes a relatively long time. If plural bus reset cycles take place consecutively, AKE is repeatedly stopped and restarted for a few cycles. Because of the effective period during which the encryption key is exchanged according to AKE, when the off timing of the effective period and the timing of interrupt/restart of AKE are superimposed, the target node cannot ensure the encryption key. In this case decoding becomes impossible. This result is undesirable.
When a bus reset occurs, it is necessary to determine the node types. Consequently, the reading of the configuration ROM takes place simultaneously with communication to check the status. Thus after the bus reset, the traffic on the bus rises dramatically. This places a long term heavy load on the CPU of each node. Due to these factors, bus reset during data transfer is often a problem. Thus there is a demand for a scheme to avoid this problem.
When the number of nodes connected to the bus increases or decreases, the bus reset signals the node increase or decrease to the other nodes. Thus it is necessary to systematically guarantee the bus reset in the IEEE 1394 standard.